package com.utils.zen;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;

import java.util.HashMap;
import java.util.Map;

/**
 * @author Devin
 * @program my-java
 * @description 字符处理
 * @date 2024-06-13 15:52
 **/
public class StrProcess {
    public static void main(String[] args) {
//        // 摸牌概率
//        String mopaiStr = "1_5|2_10|16_20|25_30";
//        String[] split = mopaiStr.split("|");
//
//        Map<Integer, Integer> integerIntegerMap = convertStringToMap(mopaiStr);
//
//        System.out.println("================");
//
//
//        Set<Integer> moSixKongMatch = new HashSet<>();
//        moSixKongMatch.add(1);
//        moSixKongMatch.add(1);
//        moSixKongMatch.add(2);
//        System.out.println(moSixKongMatch);


        String jsonString = "{\\\"aId\\\":2,\\\"endTime\\\":0,\\\"firstTime\\\":1719808689,\\\"freeNum\\\":14,\\\"lastLoginTime\\\":1719975261,\\\"nextPayGiftId\\\":17,\\\"rewardIdCard\\\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],\\\"rewardPayIdCard\\\":[1900,1901],\\\"userId\\\":1579805095}";

        // 去除外层双引号和处理转义字符
        jsonString = jsonString.substring(1, jsonString.length() - 1).replace("\\\"", "\"");

        try {
            // 解析为 JSON 对象
            JSONObject jsonObject = JSONObject.parseObject(jsonString);

            // 修改字段值
            jsonObject.put("aId", 1);
            jsonObject.put("firstTime", 1713609971);
            jsonObject.put("freeNum", 0);
            jsonObject.put("lastLoginTime", 1713611103);
            jsonObject.put("nextPayGiftId", 5);
            jsonObject.put("rewardIdCard", new JSONArray());
            jsonObject.put("rewardPayIdCard", new JSONArray());
            jsonObject.put("userId", 1123);

            // 转换为目标格式的 JSON 字符串
            String resultJsonString = jsonObject.toString();

            // 输出结果
            System.out.println(resultJsonString);


//            String s = "{\\\"aId\\\":2,\\\"endTime\\\":0,\\\"firstTime\\\":1719808689,\\\"freeNum\\\":14,\\\"lastLoginTime\\\":1719975261,\\\"nextPayGiftId\\\":17,\\\"rewardIdCard\\\":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],\\\"rewardPayIdCard\\\":[1900,1901],\\\"userId\\\":1579805095}";
//            System.out.println(s);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }


    private static Map<Integer, Integer> convertStringToMap(String input) {
        Map<Integer, Integer> map = new HashMap<>();

        // 用 '|' 分割字符串，得到每个 entry
        String[] entries = input.split("\\|");

        // 遍历每个 entry
        for (String entry : entries) {
            // 用 '_' 分割 entry 得到 key 和 value
            String[] keyValue = entry.split("_");

            // 将 key 和 value 转换为 Integer 并放入 map 中
            int key = Integer.parseInt(keyValue[0]);
            int value = Integer.parseInt(keyValue[1]);
            map.put(key, value);
        }

        return map;
    }
}

